package com.slwish.common.base;

import android.support.v4.content.ContextCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.slwish.common.R;
import com.slwish.common.interf.PerfectClickListener;


/**
 * ToolbarActivity
 *
 * @author Rocky
 * @version 1.0.0
 */
public abstract class ToolbarActivity extends BaseActivity {
    public Toolbar mToolbar;
    public TextView tvTitle;
    public TextView tvLeftMsg;
    //    public ImageView ivLeft;
    public TextView tvRight;
    public LinearLayout llRight;
    public LinearLayout llLeft;

    @Override
    protected void initWidget() {
        super.initWidget();
        initToolbar();
    }

    /**
     * 初始化toolbar
     */
    public void initToolbar() {
        mToolbar = getView(R.id.toolbar);
        tvTitle = getView(R.id.tv_title);
        llLeft = getView(R.id.ll_left);
//        ivLeft = getView(R.id.iv_left);
        tvLeftMsg = getView(R.id.tv_left_msg);
        tvRight = getView(R.id.tv_right_message);
        llRight = getView(R.id.ll_right);
        // 默认设置为返回图标
//        setSupportActionBar(mToolbar);
        // 不设置navigation的事件时， 默认finish();
        setLeftOnClickListener(new PerfectClickListener() {
            @Override
            protected void onNoDoubleClick(View v) {
                finish();
            }
        });
//        if (mToolbar != null) {
//            setSupportActionBar(mToolbar);
//        }
        initTitleNeedBack();
    }

    protected void initTitleNeedBack() {
        // 设置左上角的返回按钮为实际的返回效果
        ActionBar actionBar = getSupportActionBar();
        if (actionBar != null) {
            actionBar.setDisplayHomeAsUpEnabled(true);
            actionBar.setHomeButtonEnabled(true);
        }
    }

    /**
     * 设置标题
     *
     * @param title 标题
     */
    protected void setTitle(String title) {
        tvTitle.setText(title);
    }

    /**
     * 设置标题
     *
     * @param resId 资源id
     */
    public void setTitle(int resId) {
        if (resId < 0) return;
        tvTitle.setText(getString(resId));
    }

    /**
     * 设置标题
     *
     * @param resId 资源id
     */
    public void setTitleColor(int resId) {
        if (resId < 0)
            return;
        tvTitle.setTextColor(ContextCompat.getColor(mContext, resId));
    }


    /**
     * 设置左侧图标
     *
     * @param resId 资源ID
     */
    protected void setLeftIcon(int resId) {
        if (resId < 0) return;
        tvLeftMsg.setText("");
        tvLeftMsg.setBackground(ContextCompat.getDrawable(mContext, resId));
    }

    /**
     * 设置右侧图标
     *
     * @param resId 资源ID
     */
    protected void setRightIcon(int resId) {
        tvRight.setVisibility(View.VISIBLE);
        tvRight.setText("");
        tvRight.setBackgroundResource(resId);
    }

    /**
     * 设置右侧文字
     *
     * @param resId 资源ID
     */
    protected void setToolbarBackgroundColor(int resId) {
        if (mToolbar != null)
            mToolbar.setBackgroundColor(ContextCompat.getColor(mContext, resId));
    }

    /**
     * 设置右侧文字
     *
     * @param resId 资源ID
     */
    protected void setRightText(int resId) {
        tvRight.setVisibility(View.VISIBLE);
        tvRight.setText(resId);
    }

    /**
     * 设置右侧文字
     *
     * @param text 资源ID
     */
    protected void setRightText(String text) {
        tvRight.setVisibility(View.VISIBLE);
        tvRight.setText(text);
    }

    /**
     * 设置右侧按钮点击事件
     *
     * @param listener click事件
     */
    protected void setLeftOnClickListener(PerfectClickListener listener) {
//        llLeft.setVisibility(View.VISIBLE);
        llLeft.setOnClickListener(listener);
    }

    /**
     * 设置左侧文字
     *
     * @param resId click事件
     */
    protected void setLeftText(int resId) {
        setLeftText(getString(resId));
    }

    /**
     * 设置左侧文字
     *
     * @param text click事件
     */
    protected void setLeftText(String text) {
        tvLeftMsg.setText(text);
        tvLeftMsg.setBackground(null);
    }

//    /**
//     * 设置右侧按钮点击事件
//     *
//     * @param listener click事件
//     */
//    protected void setLeftTextOnClickListener(PerfectClickListener listener) {
//
////        llLeft.setVisibility(View.GONE);
////        tvLeftMsg.setVisibility(View.VISIBLE);
//        llLeft.setOnClickListener(listener);
//    }

    /**
     * 设置右侧按钮点击事件
     *
     * @param listener click事件
     */
    protected void setRightOnClickListener(PerfectClickListener listener) {
        llRight.setOnClickListener(listener);
    }
}
